package com.tianxiao.test.dao;

import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.baijia.tianxiao.sqlbuilder.support.CommonDao;
import com.tianxiao.test.model.BackLog;

public interface BackLogDao extends CommonDao<BackLog> {

	/**
	 * 查询即将到期或者已完成的待办事项
	 * @param userIds    ： 用户集合
	 * @param expireTime : expireTime不为Null，查询的是即将到期待办事项,为Null查询的是已完成待办事项
	 * @param isCompleted: 是否已完成
	 * @return
	 */
	public List<BackLog> getEffectiveBackLog(Collection<Long> userIds, Date expireTime, Integer status);
	
	/**
	 * 今日到期的待办事项集合
	 * @param userIds
	 * @param expireStart
	 * @param expireEnd
	 * @param isCompleted
	 * @return
	 */
	public List<BackLog> getExpireTodayBackLog(Collection<Long> userIds, Date expireStart, Date expireEnd, Integer status);
	
	/**
	 * 获取待办事项提醒任务列表
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	public List<BackLog> getNoticeBackLogList(Date startTime, Date endTime);
	
	
	    
	
	/**
	 * 根据状态和时间段查询用户的所有任务数
	 * @param startTime
	 * @param endTime
	 * @param status
	 * @param userIds为空时，查询所有
	 * @return
	 */
	public Map<Long, Long> getUserLogCount(Date startTime, Date endTime, Integer status, Collection<Long> userIds);
}
